package com.sun.filesigndemo.common.statusCode;


/**
 * 
 * @author winkey
 *	全局状态码枚举
 */
 public enum GlobalResultStatusEnum {

	 /**
	  * 成功
	  * */
	SUCCESS(new ResultStatus(200, "成功")),
	/**
	  * 结果为空
	  * */
	RESULT_EMPTY(new ResultStatus(204, "结果为空")),
	/**
	  * 存在多个相同的对象
	  * */
	MULTIPLE_OBJECTS(new ResultStatus(300, "存在多个相同的对象")),
	/**
	  * 参数为空或错误
	  * */
	PARAMETER_ERROR(new ResultStatus(400, "参数为空或错误")),
	/**
	 * 身份校验不合法
	 * */
	NO_PERMISSION(new ResultStatus(401, "身份校验不合法")),
	/**
	  * 服务器拒绝请求
	  * */
	REFUSED_REQUEST(new ResultStatus(403, "服务器拒绝请求")),
	/**
	  * 对象属性不能访问
	  * */
	NOT_ACCESS(new ResultStatus(405, "对象属性不能访问")),
	/**
	  * 对象不存在
	  * */
	NOT_EXISTS(new ResultStatus(410, "对象不存在")),
	/**
	  * 不支持的媒体类型
	  * */
	UNSUPPORTED_MEDIA(new ResultStatus(415,"不支持的媒体类型")),
	/**
	  * 未知异常
	  * */
	ERROR(new ResultStatus(500,"未知异常")),
	/**
	  * RPC调用失败
	  * */
	RPC_FAIL(new ResultStatus(506,"RPC调用失败")),
	/**
	  * 令牌失效
	  * */
	TOKEN_LOSE(new ResultStatus(603,"令牌失效"));
	
	private GlobalResultStatusEnum(ResultStatus resultStatus) {
		 this.resultStatus= resultStatus;
	 }
	
	private ResultStatus resultStatus;
	
	public Integer getCode() {
		return this.resultStatus.getCode();
	}
	
	public String getMsg() {
		return this.resultStatus.getMsg();
	}
	
	public ResultStatus getResultStatus() {
		return resultStatus;
	}
	
	public String toString(){  
        return super.toString()+"(code: "+resultStatus.getCode()+", msg: "+resultStatus.getMsg()+")";  
    }
}
